#ifndef _VL_C_DIRTY_SUPPORT__H_
#define _VL_C_DIRTY_SUPPORT__H_

#include "support/vl_support.h"
#include "support/c/vl_c_dirty_def.h"

namespace VL {

/**
 * @Author: CimZzz
 * @Date: 2022-08-21 00:02:31
 * 
 * C / C++ Dirty 检查方法支持
 */
class CDirtySupport: public VLSupport {
public:
	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-21 00:02:55
	 * 
	 * 构造函数
	 */
	explicit CDirtySupport();

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-19 15:53:54
	 * 
	 * 执行动作
	 * 
	 * @param env 环境变量
	 */
	virtual void doAction(VLEnv* env);

private:

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-21 00:51:25
	 * 
	 * 打印 Dirty 信息
	 * 
	 * @param bundle Dirty 参数集合
	 */
	void printConfig(const std::shared_ptr<CDirtyBundle>& bundle);

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-22 00:21:50
	 * 
	 * 确保 Dirty 验证流存在
	 * 
	 * @param dirtyBundle Dirty 参数集合
	 */
	void makeSureValidStreamExist(std::shared_ptr<CDirtyBundle>& dirtyBundle);
};

}

#endif // _VL_C_DIRTY_SUPPORT__H_
